package cn.lili.modules.order.order.service;

import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.order.entity.dos.RankingActivityConfig;
import cn.lili.modules.order.order.entity.dos.RankingScoreDetails;
import cn.lili.modules.order.order.entity.dto.RankingScoreDetailsDTO;
import cn.lili.modules.order.order.entity.dto.TopUserDTO;
import cn.lili.modules.order.order.entity.vo.RankingScoreDetailsVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 积分记录表 服务类
 * </p>
 *
 * @author zhushiqing
 * @since 2023-12-21
 */
public interface IRankingScoreDetailsService extends IService<RankingScoreDetails> {

    ResultMessage<Object> scorePage(RankingScoreDetails scoreDetails,PageVO pageVO);

    List<TopUserDTO> topUser(RankingActivityConfig currentActivity, Double sc, Integer status);

    /**
     * 根据活动id获取积分排名列表
     * @return
     */
    ResultMessage<Page<RankingScoreDetailsVO>> getRankingScoreDetail(RankingScoreDetailsDTO dto);

    /**
     * 根据用户id获取积分明细商品列表 总积分详情-->商品明细列表
     */
    ResultMessage<Page<RankingScoreDetails>> getRankingScoreDetailByUserId(RankingScoreDetailsDTO dto);

    List<TopUserDTO> topUserLimit(RankingActivityConfig currentActivity, Double sc, Integer status, Integer limit1, Integer limit2);

    /**
     * 店主列表->总佣金详情列表
     */
    ResultMessage<Page<RankingScoreDetails>> getDistributeionSubCommissDetails(RankingScoreDetailsDTO dto);

    BigDecimal currentScore(RankingActivityConfig currentActivity);

}
